package cn.ffcs.uec.staff.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import cn.ffcs.uec.common.vo.UecBdDefdoc;
import cn.ffcs.uec.organization.model.UecOrgOrgs;
import cn.ffcs.uom.common.model.DefaultDaoFactory;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.StrUtil;
import lombok.Getter;
import lombok.Setter;
/**
 * 政治面貌
 *
 */
public class UecPartyLog extends UomEntity implements Serializable,Cloneable {

	private static final long serialVersionUID = -1550327753173687989L;


	/**
	 * 政治面貌主键
	 * 
	 */
	public Long getPartylogId() {
		return super.getId();
	}

	public void setPartylogId(Long partylogId) {
		super.setId(partylogId);
	}

	/**
	 * 员工标识
	 */
	@Getter
	@Setter
	private Long staffId;
	/**
	 * 员工类型
	 * 由于合同制、外包人员的奖励信息都放在一张表中
	 * 故用这个字段来区分
	 * nmStaffType = 2  为合同制
	 */
	@Getter
	@Setter
    private String nmStaffType;
	/**
	 * 账期
	 */
	@Getter
	@Setter
	private Long monthId;
	/**
	 * 主键
	 */
	@Getter
	@Setter
    private String pkPsndocSub;
	/**
	 * 创建时间
	 */
	@Getter
	@Setter
    private String creationtime;
	/**
	 * 创建人
	 */
	@Getter
	@Setter
    private String creator;
	/**
	 * 修改时间
	 */
	@Getter
	@Setter
    private String modifiedtime;
	/**
	 * 修改人
	 */
	@Getter
	@Setter
    private String modifier;
	/**
	 * 政治面貌及党籍情况
	 */
	@Getter
	@Setter
    private String partyName;
	/**
	 * 入团时间
	 */
	@Getter
	@Setter
    private String glbdef1;
	/**
	 * 参加党派时所在单位
	 */
	@Getter
	@Setter
    private String partyUnit;
	/**
	 * 参加时间
	 */
	@Getter
	@Setter
    private String partyDate;
	/**
	 * 退出时间
	 */
	@Getter
	@Setter
    private String glbdef2;
	/**
	 * 所属组织
	 */
	@Getter
	@Setter
    private String pkOrg;
	/**
	 * 介绍人
	 */
	@Getter
	@Setter
    private String partyPsn;
	/**
	 * 起始日期
	 */
	@Getter
	@Setter
    private String beginDate;
	/**
	 * 终止日期
	 */
	@Getter
	@Setter
    private String endDate;
	/**
	 * 职务
	 */
	@Getter
	@Setter
    private String glbdef3;
	/**
	 * 人员基本信息
	 */
	@Getter
	@Setter
    private String pkPsndoc;
	/**
	 * 时间戳
	 */
	@Getter
	@Setter
    private String ts;
	/**
	 * 删除标志
	 */
	@Getter
	@Setter
    private Long dr;
	/**
	 * 最近记录标志
	 */
	@Getter
	@Setter
    private String lastflag;
	/**
	 * 转正日期
	 */
	@Getter
	@Setter
    private String partyDueDate;


	public static UecPartyLog newInstance() {
		return new UecPartyLog();
	}
	
	/**
	 * 政治面貌及党籍情况
	 * @return
	 */
	public String getPartyNameName() {
		if(!StrUtil.isNullOrEmpty(this.getPartyName())) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC WHERE PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getPartyName());
			List<UecBdDefdoc> list = DefaultDaoFactory.getDefaultDao().jdbcFindList(sql,
					params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 所属组织  名称
	 * @return
	 */
	public String getPkOrgName() {
		if(!StrUtil.isNullOrEmpty(this.getPkOrg())) {
			String sql = " SELECT * FROM UEC_ORG_ORGS T  WHERE T.PK_ORG = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.pkOrg);
			List<UecOrgOrgs> list = DefaultDaoFactory.getDefaultDao().jdbcFindList(sql,
					params, UecOrgOrgs.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return null;
	
	
	}
	
	@Override
	public UecPartyLog clone() {
		UecPartyLog uecPartyLog = null;
		try {
			uecPartyLog = (UecPartyLog) super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		return uecPartyLog;
	}

}
